//NonCircularShapes.h
//Contains the class definition for the NonCircularShapes Class

#include <iostream>
#include <string>
#include "Shape.h"

using namespace std;

#ifndef NONCIRCULARSHAPES_H
#define NONCIRCULARSHAPES_H

class NonCircularShapes : public Shape
{
public:
	NonCircularShapes(const float &, const float &, float = 0.0, float = 0.0);
	NonCircularShapes();

	void setWidth(float);
	float getWidth() const;

	void setLength(float);
	float getLength() const;

	void setArea(float, float);
	float getArea() const;

	void setPerimeter(float, float);
	float getPerimeter() const;

	void setShapeType(string);
	string getShapeType();

	virtual float area() const;
	virtual float perimeter() const;
	virtual float volume() const;
	
	friend ostream& operator<< (ostream &out, Shape &shape);

private:
	float length;
	float width;
	float R_area;
	float R_perimeter;

	string shapeType;
	};

#endif